/**
 * @ClassName DwdRydwService
 * @Description
 * @Author halo
 * @Date 2024/8/28 13:52
 **/
package net.hn.hnms.biz.gasext.dws.service;

import net.hn.hnms.biz.gasext.dws.domain.JyglInsertShiftManage1Po;
import net.hn.hnms.biz.gasext.dws.domain.JyglShiftManagementPo;
import net.hn.hnms.biz.gasext.dws.domain.dto.AlarmDetailDto;
import net.hn.hnms.biz.gasext.dws.domain.dto.DwdRydwHistoricalDataDto;
import net.hn.hnms.biz.gasext.dws.domain.dto.DwdRydwRealTimeDataDto;
import net.hn.hnms.biz.gasext.dws.domain.dto.MinePersonDataDto;
import net.hn.hnms.sys.common.core.domain.ResponsePage;
import net.hn.hnms.sys.common.mybatis.core.page.PageQuery;
import net.hn.hnms.biz.gasext.dws.domain.vo.*;

import java.util.Date;
import java.util.List;
import java.util.TreeSet;

public interface DwdRydwService {

    /**
     * 查询报警明细
     * @param pageQuery
     * @param companyCode
     * @param alarmDetailDto
     * @return
     */
    ResponsePage<AlarmDetailVO> selectAlarmDetailList(PageQuery pageQuery, String companyCode, AlarmDetailDto alarmDetailDto);

    /**
     * pc-人员定位-实时监测
     * @return
     */
    CompanyMonitoringVo monitoring(String companyCode, String mineCode);
    /**
     * 查询人员实时数据
     * @param pageQuery
     * @param dto
     * @return
     */
    ResponsePage<DwdRydwRealTimeDataVo> selectRealTimeDataList(PageQuery pageQuery, DwdRydwRealTimeDataDto dto);

    /**
     * 查询人员历史数据
     * @param pageQuery
     * @param dto
     * @return
     */
    ResponsePage<DwdRydwHistoricalDataVo> selectHistoricalDataList(PageQuery pageQuery, DwdRydwHistoricalDataDto dto);

    /**
     * 根据煤矿编码获取帆软带班领导名称
     * @param mineCode
     * @return
     */
    public TreeSet<String> getMindutyList(String mineCode);

    /**
     * pc-人员定位-井下实时监测
     * @return
     */
    List<MinePersonDataDto> shaftMonitoring(String companyCode, String mineCode);

    /**
     * pc-人员定位-超员矿井变化趋势
     * @return
     */
    PointDateListVo changeTrendOfOvermannedMine(String companyCode, String mineCode, String type);

    /**
     * pc-人员定位-井下超员变化趋势
     * @return
     */
    PointDateListVo changeTrendOfUndergroundPersonnel(String companyCode,String mineCode,String type);

    /**
     * pc-人员定位-今日报警
     * @return
     */
    TodayAlarmVo todayAlarm(String companyCode, String mineCode);

    /**
     * 获取当前班次
     */
    public String getShiftTimeList(Date dateTime, JyglInsertShiftManage1Po jyglInsertShiftManage1Po);

    /**
     * 根据班次获取领导名称
     */
    public TreeSet<String> getMinShiftListByClasses(List<JyglShiftManagementPo> fineDataBeOnWatchListBymineName, String classes);
}
